package com.storm.queue.core

import com.storm.queue.model.Job


interface DelayOperation {

    /**
     * 从Job存储表中，获取Job
     * @param jobId job的唯一标示
     */
    fun getJob(jobId: String): Job?

    /**
     * 根据topic 获取一条需要处理数据
     */
    fun queuePop(topic: String): String?

    /**
     * 需要重试的任务进行后续处理
     */
    fun retryJob(topic: String, job: Job)

    /**
     * 删除任务
     */
    fun deleteJob(topic: String, id: String)

    /**
     * 搬运准备好的任务
     */
    fun moveToQueue(): Long

    /**
     * 添加任务到队列中
     */
    fun addJob(job: Job, topic: String, limitTime: Long)

    /**
     * 任务丢失后进行补回，一般用不到
     */
    fun setJobLast()


}
